package com.shell.governor.authorization.dao;

import com.shell.bee.persistence.mapper.BaseMapper;
import com.shell.governor.authorization.po.PubAuthorization;
import com.shell.governor.authorization.po.PubRole;
import com.shell.governor.authorization.vo.AuthTmplRoleVo;
import com.shell.governor.modules.po.PubApplication;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;

public abstract interface PubRoleDao extends BaseMapper<PubRole> {
	public abstract int deleteRole(PubRole paramPubRole);

	public abstract List<PubRole> selectRoleForUser(Map<String, Object> paramMap);

	public abstract List<PubRole> selectUserRole(Map<String, Object> paramMap);

	public abstract List<PubRole> findUserRole(PubRole paramPubRole);

	public abstract int updateRoleStateWithCascade(@Param("roleId") String paramString1,
			@Param("roleState") String paramString2);

	public abstract List<AuthTmplRoleVo> selectRole4AuthTmpl(@Param("tmplId") String paramString);

	public abstract List<AuthTmplRoleVo> selectRoleByTmplId(@Param("tmplId") String paramString);

	public abstract List<AuthTmplRoleVo> selectRole4AuthUser(@Param("appId") String paramString1,
			@Param("userId") String paramString2, @Param("entId") String paramString3,
			@Param("curUserId") String paramString4, @Param("curEntId") String paramString5);

	public abstract List<PubRole> selectRoles(PubRole paramPubRole);

	public abstract List<PubRole> selectResourceRole(PubAuthorization paramPubAuthorization);

	public abstract List<PubRole> selectUserRoleNew(PubRole paramPubRole);

	public abstract List<PubRole> selectRoleTree(@Param("roleId") String paramString);

	public abstract List<PubApplication> selectAppByAdminRole(@Param("userId") String paramString);

	public abstract PubRole getRoleInfoByRoleId(String paramString);
}
